# Makefile

# 指定编译器
CC := gcc

# 指定编译选项
CFLAGS := -Wall -Iinclude

# 源文件目录
SRC_DIRS := Keyboard TCP
# 头文件目录
INC_DIR := include

# 中间文件目录
BUILD_DIR := build

# 最终可执行文件目录
BIN_DIR := bin

# 源文件列表，自动查找所有.c文件
SRC := $(wildcard $(addsuffix /*.c, $(SRC_DIRS)))

# 目标文件列表，将源文件的.c替换为.o
OBJ := $(patsubst %.c, $(BUILD_DIR)/%.o, $(notdir $(SRC)))


# 最终可执行文件
TARGET := $(BIN_DIR)/myprogram

# 默认目标
all:$(BIN_DIR)  $(TARGET)

$(BIN_DIR):
	mkdir -p $(BIN_DIR)


$(TARGET): $(SRC)
	$(CC) $(CFLAGS) $(SRC) -o $@

# 生成可执行文件



# 生成目标文件
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR)
	$(CC) -c $(CFLAGS) $< -o $@


# 清理规则
clean:
	rm -rf $(BUILD_DIR) $(BIN_DIR)

# 声明伪目标，防止与同名文件冲突
.PHONY: all clean
